/* ==================================================================   
 * Created [2009-4-27 下午11:32:55] by Jon.King 
 * ==================================================================  
 * TSS 
 * ================================================================== 
 * mailTo:jinpujun@hotmail.com
 * Copyright (c) Jon.King, 2009-2012 
 * ================================================================== 
*/

package com.jinhe.tss.component.dynproperty.support;

import com.jinhe.tss.core.persistence.IDao;
import com.jinhe.tss.core.persistence.IEntity;

/** 
 * <p> DynProperty.java </p> 
 * 
 * 负责处理动态属性值。
 * 包括获取属性，根据动态实体 获取/保存/删除 其所有的动态属性值。
 * 
 * @author Jn.King 2008/04/14 10:18:55 $ 
 */
public interface DynProperty {

    /**
     * 为对象设置配置，一般为数据库连接的配置。
     * @param configs
     */
    void init(IDao<IEntity> dao);
    
    /**
     * 保存动态实体对象的所有动态属性值
     * @param entity
     * @return
     */
    AbstractDynEntity saveDynProperti4Entity(AbstractDynEntity entity);

    /**
     * 获取动态实体对象的所有动态属性值
     * @param id
     * @param clazz
     * @return
     */
    AbstractDynEntity getDynProperti4Entity(AbstractDynEntity entity);

    /**
     * 删除动态实体对象的所有动态属性值
     * @param obj
     */
    void removeDynProperti4Entity(AbstractDynEntity entity);

}

